//
//  RSStatusesModel.swift
//  RSWeibo
//
//  Created by Macx on 16/8/11.
//  Copyright © 2016年 Macx. All rights reserved.
//

import UIKit

class RSStatusesModel: NSObject {
    
    //  发微博时间
    var created_at: String?
    //  微博id
    var id: Int64 = 0
    //  微博内容
    var text: String?
    //  来源
    var source: String?
    //  关注用户的模型
    var user: RSUserModel?
    // 转发数
    var reposts_count: Int = 0
    // 评论数
    var comments_count: Int = 0
    // 表态数
    var attitudes_count: Int = 0
    
    // 转发微博的模型
    var retweeted_status: RSStatusesModel?
    
    // 配图信息
    var pic_urls: [RSPicUrlModel]?
    
    
    
    init(dict: [String : AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    // 防止没定义键值对导致崩溃
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }
    
    // 因为包含了一个 user 的字典元素, 所以得单独遍历它
    override func setValue(value: AnyObject?, forKey key: String) {
        // 取出"user"对应的元素, 进行字典转模型
        if key == "user" {
            // 进行格式判断
            guard let dict = value as? [String : AnyObject] else{
                return
            }
            // 代码执行到此, 说明"user"的字典格式没问题, 则进行字典转模型
            user = RSUserModel(dic: dict)
            
        }else if key == "retweeted_status"{
            guard let dict = value as? [String : AnyObject] else{
                return
            }
            // 代码执行到此, 说明字典格式没有问题
            retweeted_status = RSStatusesModel(dict: dict)
            
            
        }else if key == "pic_urls"{
            guard let dictArr = value as? [[String : AnyObject]] else{
                return
            }
            // 代码执行到此, 说明字典格式没有问题
            
            // 定义一个可变数组
            var tempArr = [RSPicUrlModel]()
            
            for obj in dictArr {
                // 字典转模型
                let picModel = RSPicUrlModel(dict: obj)
                // 添加到可变数组中
                tempArr.append(picModel)
            
            }
            pic_urls = tempArr
            
        }
            
        else{
            
            super.setValue(value, forKey: key)
        }
    }
    
    
    
    
    
}
